As databases architectures have grown more sophisticated and client demand for services has increased, the need to provide additional processing power has grown. Further, data availability requirements have greatly increased in conjunction with the need for processing power. Various conventional database systems address scalability through scaling of resources and distribution of operations. For instance, scaling of resources may be achieved, for example, by providing multiple copies of database instances where multiple copies of each database instance are able to process read and/or write operations. Distribution of database operations can include distribution of read operations to ensure high data availability. Distribution of write processing to multiple systems capable of performing write operations is often referred to as “multi-master” databases. Multi-master or multi-writer databases are able to provide high or even 100% write availability by handling client writes requests across any number of systems or processing nodes (e.g., a processing entity hosting a portion of the database data) in a distributed database. Unfortunately, distribution of write requests incurs significant issues associated with reconciling the distributed write operations that occur throughout the database.
In some conventional implementations, eventual consistency models are used to minimize issues with reconciling distributed write operations. However, even with eventual consistency models (and informal data consistency guaranties) distributed write operations pose significant problems. For example, some approaches implement sophisticated reconciliation logic to order writes executed on different systems within a distributed database or to select specific systems to handle each write operation. Other examples of conventional database systems implement versioning controls on the database data or documents containing the data. In one example, multiversion concurrency control (MVCC) is implemented to ensure consistency of the data across multiple systems or processing nodes that accept write operations.